home *** CD-ROM | disk | FTP | other *** search
- The Independent JPEG Group's JPEG software
- ==========================================
-
- README for release 2 of 13-Dec-91
- =================================
-
- This distribution contains the second public release of the Independent JPEG
- Group's free JPEG software. You are welcome to redistribute this software and
- to use it for any purpose, subject to the conditions under LEGAL ISSUES, below.
-
- For installation instructions, see file SETUP; for usage instructions, see
- file USAGE (or the cjpeg.1 and djpeg.1 manual pages).
-
- This software is still undergoing revision. Updated versions may be obtained
- by FTP or UUCP to uunet.uu.net and other archive sites; see ARCHIVE LOCATIONS
- below for details.
-
- If you intend to become a serious user of this software, please contact
- jpeg-info@uunet.uu.net to be added to our electronic mailing list. Then
- you'll be notified of updates and have a chance to participate in discussions,
- etc.
-
- This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz,
- Lee Crocker, and other members of the Independent JPEG Group.
-
-
- DISCLAIMER
- ==========
-
- THIS SOFTWARE IS NOT COMPLETE NOR FULLY DEBUGGED. It is not guaranteed to be
- useful for anything, nor to be compatible with subsequent releases, nor to be
- an accurate implementation of the JPEG standard. (See LEGAL ISSUES for even
- more disclaimers.)
-
- Please report any problems with this software to jpeg-info@uunet.uu.net.
-
-
- WHAT'S HERE
- ===========
-
- This distribution contains software to implement JPEG image compression and
- decompression. JPEG (pronounced "jay-peg") is a standardized compression
- method for full-color and gray-scale images. JPEG is intended for
- "real-world" scenes; cartoons and other non-realistic images are not its
- strong suit. JPEG is lossy, meaning that the output image is not necessarily
- identical to the input image. Hence you should not use JPEG if you have to
- have identical output bits. However, on typical images of real-world scenes,
- very good compression levels can be obtained with no visible change, and
- amazingly high compression levels can be obtained if you can tolerate a
- low-quality image. For more details, see the references, or just experiment
- with various compression settings.
-
- The software implements JPEG baseline and extended-sequential compression
- processes. Provision is made for supporting all variants of these processes,
- although some uncommon parameter settings aren't implemented yet. For legal
- reasons, we are not distributing code for the arithmetic-coding process; see
- LEGAL ISSUES. At present we have made no provision for supporting the
- progressive or lossless processes defined in the standard.
-
- The present software is still largely in the prototype stage. It does not
- support all possible variants of the JPEG standard, and some functions have
- rather slow and/or crude implementations. However, it is useful already.
-
- The emphasis in designing this software has been on achieving portability and
- flexibility, while also making it fast enough to be useful. We have not yet
- undertaken serious performance measurement or tuning; we intend to do so in
- the future.
-
-
- This software can be used on several levels:
-
- * As canned software for JPEG compression and decompression. Just edit the
- Makefile and configuration files as needed (see file SETUP), compile and go.
- Members of the independent JPEG group will improve the out-of-the-box
- functionality and speed as time goes on.
-
- * As the basis for other JPEG programs. For example, you could incorporate
- the decompressor into a general image viewing package by replacing the
- output module with write-to-screen functions. For an implementation on
- specific hardware, you might want to replace some of the inner loops with
- assembly code. For a non-command-line-driven system, you might want a
- different user interface. (Members of the group will be producing Macintosh
- and Amiga versions with more appropriate user interfaces, for example.)
-
- * As a toolkit for experimentation with JPEG and JPEG-like algorithms. Most
- of the individual decisions you might want to mess with are packaged up into
- separate modules. For example, the details of color-space conversion and
- subsampling techniques are each localized in one compressor and one
- decompressor module. You'd probably also want to extend the user interface
- to give you more detailed control over the JPEG compression parameters.
-
- In particular, we welcome the use of this software as the basis for commercial
- products; no royalty is required.
-
-
- ARCHIVE LOCATIONS
- =================
-
- The "official" archive site for this software is uunet.uu.net (Internet
- address 137.39.1.2 or 192.48.96.2). The most recent released version can
- always be found there in directory graphics/jpeg. This particular version
- will be archived as jpegsrc.v2.tar.Z. If you are on the Internet, you can
- retrieve files from UUNET by anonymous FTP. If you don't have FTP access,
- UUNET's archives are also available via UUCP; contact postmaster@uunet.uu.net
- for information on retrieving files that way.
-
- Various other Internet sites maintain copies of the UUNET file, which may or
- may not be up-to-date. In Europe, try nic.funet.fi (128.214.6.100; look in
- directory pub/graphics/programs/jpeg).
-
- You can also obtain this software from CompuServe, in the GRAPHSUPPORT forum
- (GO PICS), library 10; this version will be file jpsrc2.zip.
-
- If you are not reasonably handy at configuring and installing portable C
- programs, you may have some difficulty installing this package. You may
- prefer to obtain a pre-built executable version. A collection of pre-built
- executables for various machines is currently available for anonymous FTP at
- procyon.cis.ksu.edu (129.130.10.80 --- this number is due to change soon);
- look under /pub/JPEG. The administrators of this system ask that FTP traffic
- be limited to non-prime hours. For more information on this archive, please
- contact Steve Davis (strat@cis.ksu.edu). This collection is not maintained by
- the Independent JPEG Group, and programs in it may not be the latest version.
-
-
- SUPPORTING SOFTWARE
- ===================
-
- You will probably want Jef Poskanzer's PBMPLUS image software, which provides
- many useful operations on PPM-format image files. In particular, it can
- convert PPM images to and from a wide range of other formats. You can FTP
- this free software from export.lcs.mit.edu (contrib/pbmplus*.tar.Z) or
- ftp.ee.lbl.gov (pbmplus*.tar.Z). Unfortunately PBMPLUS is not nearly as
- portable as the JPEG software is; you are likely to have difficulty making it
- work on any non-Unix machine.
-
- If you are using X Windows you might want to use the xv or xloadimage viewers
- to save yourself the trouble of converting PPM to some other format. Both of
- these can be found in the contrib directory at export.lcs.mit.edu.
- There will soon be a new release of xv that incorporates our software and thus
- can read and write JPEG files directly. (NOTE: since xv internally reduces
- all images to 8 bits/pixel, a JPEG file written by xv will not be very high
- quality. Caveat user.)
-
-
- SOFTWARE THAT'S NO HELP AT ALL
- ==============================
-
- Handmade Software's shareware PC program GIF2JPG produces files that are
- totally incompatible with our programs. They use a proprietary format that is
- an amalgam of GIF and JPEG representations. However, you can force GIF2JPG
- to produce compatible files with its -j switch, and their decompression
- program JPG2GIF can read our files (at least ones produced with our default
- option settings).
-
- Unfortunately, most commercial JPEG implementations are also incompatible as
- of this writing, especially programs released before summer 1991. The root of
- the problem is that the ISO JPEG committee failed to specify a concrete file
- format. Many vendors "filled in the blanks" on their own, creating
- proprietary formats that no one else could read. (For example, none of the
- early commercial JPEG implementations for the Macintosh were able to exchange
- compressed files.)
-
- The file format we have adopted is called JFIF (see REFERENCES). This format
- has been agreed to by a number of major commercial JPEG vendors, and we expect
- that it will become the de facto standard. JFIF is a minimal representation;
- work is also going forward to incorporate JPEG compression into the TIFF
- standard, for use in "high end" applications that need to record a lot of
- additional data about an image. We intend to support JPEG-in-TIFF in the
- future. We hope that these two formats will be sufficient and that other,
- incompatible JPEG file formats will not proliferate.
-
- Indeed, part of the reason for developing and releasing this free software is
- to help force rapid convergence to de facto standards for JPEG file formats.
- SUPPORT STANDARD, NON-PROPRIETARY FORMATS: demand JFIF or JPEG-in-TIFF!
-
-
- REFERENCES
- ==========
-
- The best and most readily available introduction to the JPEG compression
- algorithm is Wallace's article in the April '91 CACM:
- Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
- Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
- (Adjacent articles in that issue discuss MPEG motion picture compression,
- applications of JPEG, and related topics.) We highly recommend reading that
- article before trying to understand the innards of any JPEG software.
-
- For more detail about the JPEG standard you pretty much have to go to the
- draft standard (which is not nearly as intelligible as Wallace's article).
- The standard is not now available electronically; you must order a paper copy
- through ISO. In the US, copies may be ordered from ANSI Sales at (212)
- 642-4900. The standard is divided into two parts: Part 1 is the actual
- specification, and Part 2 covers compliance testing methods. The current
- "committee draft" version of Part 1 is titled "Digital Compression and Coding
- of Continuous-tone Still Images, Part 1: Requirements and guidelines" and has
- document number ISO/IEC CD 10918-1. (The alternate number SC2 N2215 should
- also be mentioned when ordering.) This draft is expected to be superseded by
- the Draft International Standard version around the end of November 1991.
- Ordering info will be the same as above, but replace "CD" with "DIS" in the
- document number (alternate number not yet known). The committee draft of
- Part 2 is expected to be available around the end of December 1991. It will
- be titled "Digital Compression and Coding of Continuous-tone Still Images,
- Part 2: Compliance testing" and will have document number ISO/IEC CD 10918-2
- (alternate number not yet known).
-
- The JPEG standard does not specify all details of an interchangeable file
- format. For the omitted details we follow the "JFIF" conventions, revision
- 1.01. A copy of the JFIF spec is available from:
- Literature Department
- C-Cube Microsystems, Inc.
- 399A West Trimble Road
- San Jose, CA 95131
- (408) 944-6300
- Requests can also be e-mailed to info@c3.pla.ca.us. The same source can
- supply copies of the draft JPEG-in-TIFF specs.
-
- If you want to understand this implementation, start by reading the
- "architecture" documentation file. Please read "codingrules" if you want to
- contribute any code.
-
-
- LEGAL ISSUES
- ============
-
- The authors make NO WARRANTY or representation, either express or implied,
- with respect to this software, its quality, accuracy, merchantability, or
- fitness for a particular purpose. This software is provided "AS IS", and you,
- its user, assume the entire risk as to its quality and accuracy.
-
- This software is copyright (C) 1991, Thomas G. Lane.
- All Rights Reserved except as specified below.
-
- Permission is hereby granted to use, copy, modify, and distribute this
- software (or portions thereof) for any purpose, without fee, subject to these
- conditions:
- (1) If any part of the source code for this software is distributed, then this
- README file must be included, with this copyright and no-warranty notice
- unaltered; and any additions, deletions, or changes to the original files
- must be clearly indicated in accompanying documentation.
- (2) If only executable code is distributed, then the accompanying
- documentation must state that "this software is based in part on the work of
- the Independent JPEG Group".
- (3) Permission for use of this software is granted only if the user accepts
- full responsibility for any undesirable consequences; the authors accept
- NO LIABILITY for damages of any kind.
-
- Permission is NOT granted for the use of any author's name or author's company
- name in advertising or publicity relating to this software or products derived
- from it. This software may be referred to only as "the Independent JPEG
- Group's software".
-
- We specifically permit and encourage the use of this software as the basis of
- commercial products, provided that all warranty or liability claims are
- assumed by the product vendor.
-
-
- ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
- sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
- ansi2knr.c is NOT covered by the above copyright and conditions, but instead
- by the usual distribution terms of the Free Software Foundation; principally,
- that you must include source code if you redistribute it. (See the file
- ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
- of any product generated from the JPEG code, this does not limit you more than
- the foregoing paragraphs do.
-
-
- It appears that the arithmetic coding option of the JPEG spec is covered by
- patents owned by IBM and AT&T, as well as a pending Japanese patent of
- Mitsubishi. Hence arithmetic coding cannot legally be used without obtaining
- one or more licenses. For this reason, support for arithmetic coding has been
- removed from the free JPEG software. (Since arithmetic coding provides only a
- marginal gain over the unpatented Huffman mode, it is unlikely that very many
- people will choose to use it. If you do obtain the necessary licenses,
- contact jpeg-info@uunet.uu.net for a copy of our arithmetic coding modules.)
- So far as we are aware, there are no patent restrictions on the remaining
- code.
-
-
- We are required to state that
- "The Graphics Interchange Format(c) is the Copyright property of
- CompuServe Incorporated. GIF(sm) is a Service Mark property of
- CompuServe Incorporated."
-
-
- TO DO
- =====
-
- Many of the modules need fleshing out to provide more complete
- implementations, or to provide faster paths for common cases. The greatest
- needs are for (a) decent color quantization, and (b) a memory manager
- implementation that can work in limited memory by swapping "big" images to
- temporary files. I (Tom Lane) am going to work on color quantization next.
- Volunteers to write a PC memory manager, or to work on any other modules, are
- welcome.
-
- We'd appreciate it if people would compile and check out the code on as wide a
- variety of systems as possible, and report any portability problems
- encountered (with solutions, if possible). Checks of file compatibility with
- other JPEG implementations would also be of interest. Finally, we would
- appreciate code profiles showing where the most time is spent, especially on
- unusual systems.
-
- Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net.
-